/** Progetto PRAISED **/
package it.uniroma3.dia.praised.brenda.validator;

import it.uniroma3.dia.praised.exception.CrawlerException;

import java.net.MalformedURLException;
import java.net.URL;

/**
 * Validator : Classe che modella il validatore dei link. Si comporta come il browser web, interpretando 
 * opportunamente i caratteri speciali
 *  
 * @author Accosta Augusto
 * @author Lopez Elisabetta
 * 
 */
public class Validator {

	/**
	 * Metodo che ricostruisce l'url estratto aggiungendo il rispettivo dominio
	 * 
	 * @param domain - root del sito web da cui estrarre il dominio
	 * @param url - url da modificare
	 * @return urlBuilded - url opportunamente costruita
	 * 
	 * @throws CrawlerException
	 */
	public static URL buildURL(URL domain, String url) throws CrawlerException {
		String host = "http://" + domain.getHost();
		URL urlBuilded;
		
		try {
			if(url.contains(host))
				urlBuilded = new URL(url);
			else
				urlBuilded = new URL(host + url);
			
		} catch (MalformedURLException e) {
			throw new CrawlerException(e.getMessage());
		}
		
		return urlBuilded;
		
	}
	
}
